home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / newmarch.zip / FORM3A.C < prev    next >
C/C++ Source or Header  |  1992-09-08  |  4KB  |  143 lines

  1. /* Author:   $Author: jan $
  2.  * File:     $Source: /usr/usrs/jan/desktop/X_Book.boo/programs/RCS/form3a.c,v $
  3.  * Date:     $Date: 1992/09/09 00:10:00 $
  4.  * Revision: $Revision: 1.1 $
  5.  */
  6.  
  7. #include "copyright.h"
  8.  
  9. #include <stdio.h> 
  10.  
  11. #include <X11/Intrinsic.h> 
  12. #include <Xm/Xm.h> 
  13. #include <Xm/PushB.h> 
  14. #include <Xm/Form.h> 
  15.  
  16. /*------------------------------------------------------------- 
  17. **     Forward Declarations 
  18. */ 
  19.  
  20. void main ();            /*  main logic for application    */ 
  21.  
  22. void CreateApplication ();    /*  create main window        */ 
  23. void QuitCB ();            /*  callback for quit button    */ 
  24.  
  25. /*------------------------------------------------------------- 
  26. **    Global Variables 
  27. */ 
  28.  
  29. #define MAX_ARGS 20 
  30. #define Class_name "FourButtons" 
  31.  
  32. static XmStringCharSet    charset = (XmStringCharSet) XmSTRING_DEFAULT_CHARSET; 
  33. /*------------------------------------------------------------- 
  34. **    main        - main logic for application 
  35. */ 
  36. void main (argc,argv)  
  37.     unsigned int    argc; 
  38.      char         **argv; 
  39.      Widget        app_shell;    /*  ApplicationShell    */ 
  40.  
  41.      /*    Initialize toolkit, open the display and create the toplevel widget. */ 
  42.      app_shell = XtInitialize(argv[0], /* application name */    
  43.                Class_name,     /* class name */    
  44.                NULL,         /* options */    
  45.                0,        /* number of options */    
  46.                &argc, argv);    
  47.   
  48.      /* set up all the sub-widgets */ 
  49.      CreateApplication(app_shell);
  50.      XtRealizeWidget (app_shell); 
  51.  
  52.      /*    Get and dispatch events. 
  53.      */ 
  54.      XtMainLoop (); 
  55.  
  56. /*------------------------------------------------------------- 
  57. **     CreateApplication    - create main window 
  58. **          This must be customised for each application.
  59. */ 
  60. void CreateApplication (parent)  
  61. Widget        parent;        /*  parent widget    */ 
  62.     Widget        row_column;    /*  RowColumn        */ 
  63.     Widget        widget1, widget2, widget3, widget4;
  64.  
  65.      Arg        args[MAX_ARGS];    /*  arg list        */ 
  66.      register int    n;        /*  arg count        */ 
  67.  
  68.      /*    Create RowColumn Window. 
  69.      */ 
  70.      n = 0; 
  71.      row_column = XmCreateForm (parent, "rowColumn", args, n);    
  72.      XtManageChild (row_column);     
  73.  
  74.      n = 0; 
  75.      widget1 = XmCreatePushButton (row_column, "Widget 1", args, n); 
  76.      XtAddCallback (widget1, XmNactivateCallback, QuitCB, NULL); 
  77.      
  78.      n = 0; 
  79.      widget2 = XmCreatePushButton (row_column, "Long Widget 2", args, n); 
  80.      XtAddCallback (widget2, XmNactivateCallback, QuitCB, NULL); 
  81.  
  82.      n = 0; 
  83.      widget3 = XmCreatePushButton (row_column, "Widget 3", args, n); 
  84.      XtAddCallback (widget3, XmNactivateCallback, QuitCB, NULL); 
  85.  
  86.      n = 0; 
  87.      widget4 = XmCreatePushButton (row_column, "Long Widget 4", args, n); 
  88.      XtAddCallback (widget4, XmNactivateCallback, QuitCB, NULL);     
  89.  
  90. n = 0;
  91. XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  92. XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  93. XtSetValues (widget1, args, n);
  94.  
  95. n = 0;
  96. XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
  97. XtSetArg (args[n], XmNtopWidget, widget1); n++;
  98. XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
  99. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  100. XtSetArg (args[n], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
  101. XtSetArg (args[n], XmNrightWidget, widget1); n++;
  102. XtSetValues (widget2, args, n);
  103.  
  104. n = 0;
  105. XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
  106. XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  107. XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
  108. XtSetArg (args[n], XmNleftWidget, widget1); n++;
  109. XtSetValues (widget3, args, n);
  110.  
  111. n = 0;
  112. XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
  113. XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
  114. XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
  115. XtSetArg (args[n], XmNtopWidget, widget3); n++;
  116. XtSetArg (args[n], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
  117. XtSetArg (args[n], XmNleftWidget, widget3); n++;
  118. XtSetValues (widget4, args, n);
  119.  
  120.      XtManageChild (widget1); 
  121.      XtManageChild (widget2);    
  122.      XtManageChild (widget3); 
  123.      XtManageChild (widget4); 
  124.  
  125. /*------------------------------------------------------------- 
  126. **     QuitCB            - callback for quit button 
  127. */ 
  128. void QuitCB (w, client_data, call_data)  
  129. Widget        w;        /*  widget id        */ 
  130. caddr_t        client_data;    /*  data from application   */ 
  131. caddr_t        call_data;    /*  data from widget class  */ 
  132.  
  133.      /*    Terminate the application. 
  134.      */ 
  135.      printf("button was pressed\n");
  136.      exit (0); 
  137.